/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.util.*;
import modelo.IProveedor;
import modelo.Proveedor;
import modelo.IProveedorModel;
import vista.IProveedorView;
/**
 *
 * @author Juanma
 */
public class ProveedorController implements IProveedorController{

    private IProveedorModel model;
    private List<IProveedorView> views=new ArrayList<IProveedorView>();

    public void setup(IProveedorModel model, List<IProveedorView> views) {
        setModel(model);
        addViews(views);
        model.setController(this);

    }

    public void start() {
        for(IProveedorView view:views)
            view.display();
    }

    private void addViews(List<IProveedorView> views){
        for(IProveedorView view:views)
            addView(view);
    }
    public void addView(IProveedorView view) {
        view.setModel(model);
        view.setController(this);
        views.add(view);
    }

    public void removeView(IProveedorView view) {
        views.remove(view);
    }

    public IProveedorModel getModel() {
        return model;
    }

    public void setModel(IProveedorModel model) {
        this.model=model;
    }

    public void nuevoProveedorGesture(int ID, String nombre, boolean defecto) {
        IProveedor proveedor=new Proveedor(ID,nombre,defecto);
        getModel().nuevoProveedor(proveedor);
    }

    public void actualizaProveedorGesture(int ID, String nombre, boolean defecto) {
        IProveedor proveedor=new Proveedor(ID,nombre,defecto);
        getModel().actualizarProveedor(proveedor);
    }

    public void borraProveedorGesture(int ID) {
        IProveedor proveedor=new Proveedor(ID);
        getModel().eliminarProveedor(proveedor);
    }

    public void fireDataModelChanged() {
        for (IProveedorView view : views) {
            view.dataModelChanged();
        }
    }

    public List<IProveedorView> getViews(){
        return this.views;
    }
}
